use crate::bochu_monitor::software_info::get_installed_software; // 引入获取软件列表的函数

// 异步上传软件信息
pub async fn upload_software_info() -> Result<(), Box<dyn std::error::Error>> {
    // 获取已安装的软件信息
    let softwares = get_installed_software();

    // 将软件信息列表转换为 JSON 格式的字符串
    let json_data = serde_json::to_string(&softwares)?;

    // 创建 HTTP 客户端并发送数据
    let client = reqwest::Client::new();
    let response = client
        .post("https://ocs.fscut.com/api/receive/clientSoftware") // 请求的 URL
        .header("Content-Type", "application/json") // 设置请求头
        .body(json_data) // 设置请求体（JSON 数据）
        .send()
        .await?;

    // 打印服务器响应状态
    println!("Response: {:?}", response.status());

    // 确保响应成功
    if response.status().is_success() {
        println!("Software info successfully uploaded.");
    } else {
        eprintln!("Failed to upload software info.");
    }

    Ok(())
}
